package cc.rengu.igas.bomp.common.dao;


import cc.rengu.igas.bomp.common.entity.MchntAuthCtrl;

import java.util.List;

/**
 * 商户终端业务权限控制表操作接口类
 * Created by 王成 on 2018/5/25.
 */
public interface MchntAuthCtrlMapper {
    /**
     * 登记商户业务权限控制信息
     *
     * @param mchntAuthCtrl 商户业务权限控制信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int inertMchntAuthCtrlInfo(MchntAuthCtrl mchntAuthCtrl) throws Exception;

    /**
     * 根据非业务主键查询商户业务权限控制信息
     *
     * @param instId 多法人标识
     * @param id     非业务主键
     * @return 商户业务权限控制信息
     * @throws Exception 异常
     */
    MchntAuthCtrl selectMchntAuthCtrlInfoById(String instId, String id) throws Exception;

    /**
     * 根据非业务主键更新商户业务权限控制信息
     *
     * @param mchntAuthCtrl 商户业务权限控制信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateMchntAuthCtrlInfoById(MchntAuthCtrl mchntAuthCtrl) throws Exception;

    /**
     * 基于主键查询商户终端业务权限控制信息
     *
     * @param instId   多法人标识
     * @param ctrlType 控制类型
     * @param mchntNo  商户号
     * @param termNo   终端号
     * @param txnNum   交易类型
     * @return 商户业务权限控制信息
     */
    MchntAuthCtrl selectMchntAuthCtrlInfoByPrimaryKey(String instId, String ctrlType, String mchntNo, String termNo, String txnNum, String bizType) throws Exception;

    /**
     * 根据控制主体查询商户业务权限控制信息
     *
     * @param instId   多法人标识
     * @param ctrlType 控制类型
     * @param mchntNo  商户号
     * @param termNo   终端号
     * @return 商户信息
     */
    List<MchntAuthCtrl> selectMchntAuthCtrlInfoByCtrlInst(String instId, String ctrlType, String mchntNo, String termNo) throws Exception;

    /**
     * 根据商户号查询商户终端业务权限控制信息
     *
     * @param instId  多法人标识
     * @param mchntNo 商户号
     * @return
     * @throws Exception
     */
    List<MchntAuthCtrl> selectMchntAuthCtrlInfoByMchntNo(String instId, String mchntNo) throws Exception;


    /**
     * 根据产品编码查询商户业务权限控制信息
     *
     * @param instId      多法人标识
     * @param mchntNo     商户号
     * @param bizProdCode 终端号
     * @return 商户信息
     */
    List<MchntAuthCtrl> selectMchntAuthCtrlInfoByBizProdCode(String instId, String mchntNo, String bizProdCode) throws Exception;

}
